package clases;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dataBase.Conectar;


@WebServlet("/Usuario")
public class Usuario extends HttpServlet{
	
	private static final long serialVersionUID = 1L;
	private static final int vidaCookie=60*60*24*7;//Una Semana. (-1 para una sesi�n, 0 para borrar).
	private int categoria=5; //0=director, 1=administrador, 2=profesor, 3=tutor, 4=alumno, 5=invitado
	private String nombre, dni, pass;
	private Cookie ckUser,ckPass,ckCat,ckDni;
	private boolean hasCookies;

	
	public Usuario(){}
	
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		
		PrintWriter out=response.getWriter();
		response.setContentType("text/html");  
		out.println("<script type=\"text/javascript\">");   
		out.println("</script>");
		if(request.getParameter("salir")!=null){
			categoria=5;
			nombre=null;
			dni=null;
			pass=null;
			setCookies(response, 0);
			System.out.println(request.getServerName()+request.getServerPort());
			response.sendRedirect("/FormanGuarderia/index.jsp");

		}		
		else if(request.getParameter("loguearse")!=null){
			nombre=request.getParameter("nombre_form");
			pass=request.getParameter("pass_form");
			setUsuarioBBDD();
			setCookies(response,1);
			response.sendRedirect("/FormanGuarderia/index.jsp");
			
		}
	}
	
	public boolean buscarCookies(Cookie[] galletas){
		if(galletas!=null)
		for(int i=0;i<galletas.length ;i++){
			String nom=galletas[i].getName();
			if(nom.equals("guarderiaNombre")){
				ckUser=galletas[i];
				nombre=ckUser.getValue();
				System.out.println("TIENENOMBRE "+nombre);
				hasCookies=true;
			}else if(nom.equals("guarderiaPass")){
				ckPass=galletas[i];
				pass=ckPass.getValue();
				System.out.println("TIENEPASS "+pass);
			}else if(nom.equals("guarderiaCategoria")){
				ckCat=galletas[i];
				categoria=Integer.valueOf(ckCat.getValue());
				System.out.println("TIENECATEGORIA "+categoria);
			}else if(nom.equals("guadrediaDni")){
				ckDni=galletas[i];
				dni=ckDni.getValue();
				System.out.println("TIENEDNI "+dni);
			}
		}
		
		return hasCookies;
	}
	
	public void setCookies(HttpServletResponse response, int vida){

		if(vida==1)
			vida=vidaCookie;
		ckUser=new Cookie("guarderiaNombre", nombre);
		ckPass=new Cookie("guarderiaPass",pass);
		ckCat=new Cookie("guarderiaCategoria",String.valueOf(categoria));
		ckDni=new Cookie("guadrediaDni",dni);
		
		ckUser.setMaxAge(vida);
		ckPass.setMaxAge(vida);
		ckCat.setMaxAge(vida);
		ckDni.setMaxAge(vida);
		
		response.addCookie(ckUser);
		response.addCookie(ckPass);
		response.addCookie(ckCat);
		response.addCookie(ckDni);

	}
		
	public void setUsuarioBBDD(){
		Conectar con=new Conectar();
		Usuario uTemp=con.getUsuario(nombre, pass);
		dni=uTemp.getDni();
		categoria=uTemp.getCategoria();
	}
	
	public void salirUsuario(){
		
	}
	
	public int getCategoria() {
		return categoria;
	}



	public void setCategoria(int categoria) {
		this.categoria = categoria;
	}



	public String getNombre() {
		return nombre;
	}



	public void setNombre(String nombre) {
		this.nombre = nombre;
	}



	public String getDni() {
		return dni;
	}



	public void setDni(String dni) {
		this.dni = dni;
	}



	public String getPass() {
		return pass;
	}



	public void setPass(String pass) {
		this.pass = pass;
	}
	

}
